POV-Ray : Newsgroups : povray.general : Transmit > 1 ? : Transmit > 1 ? Server Time
9 Aug 2024 21:22:14 EDT (-0400)
  Transmit > 1 ?  
From: Rune
Date: 4 May 2000 10:16:18
Message: <39118632@news.povray.org>
I sometimes use transmitting surfaces for special effects.
For example you can make a surface which inverts colors this way:

pigment {color rgb 0.5 transmit -1}
finish {ambient 1 diffuse 0}

By looking at the output from POV-Ray I have figured out that a the color
you see when looking at a surface is calculated this way (or at least I
think so):

 transmit_value * color_behind_the_surface
+ ( 1 - transmit_value ) * surface_color
= result

So if the color behind an inverting surface is <0.2,0.5,0.7>, then this
would be the result:

-1 * <0.2,0.5,0.7> + ( 1 - (-1) ) * <0.5,0.5,0.5>
= <-0.2,-0.5,-0.7> + <1.0,1.0,1.0>
= <0.8,0.5,0.3>

The color behind the surface has been inverted by the surface.

The reason I wrote this message is that it seems that it doesn't always work
this way.

I think that when the transmit value is above 1, the color of the surface is
ignored. I don't think the surface color should be ignored. It may not be
intuitive to have the surface color multiplied with negative values, but
then, users who use transmit values above 1 shouldn't expect intuitive
results.

I wanted to make a surface which makes the contrast bigger:

pigment {color rgb 0.5 transmit 2}
finish {ambient 1 diffuse 0}

I had expected that it would make color vales below 0.5 lower and color
values above 0.5 higher, but it didn't work that way, and I think it is
because the surface color is ignored when the transmit value is above 1.

What do you think of this?

Can and should we correct it?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.